/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

google.load('visualization','1',{'packages':['corechart','table']});
google.setOnLoadCallback(drawMarkers);

function drawMarkers(){
    $("#btConsultar").click(function(){
        mostrarReporte();
    });
}

function vaciarErrores() {
    document.getElementById("RegLblErrorFechaIni").innerHTML = "";
    document.getElementById("RegLblErrorFechaFin").innerHTML = "";
    document.getElementById("RegLblErrorFechaNoIgual").innerHTML = "";
}

function mostrarReporte(){
    var data = {
      fechaInicio:$("#fechaInicioZona").val(),
      fechaFin:$("#fechaFinZona").val(),
      estado:$("#estado").val()
    };
    
        fv = new formValidator();
    vaciarErrores();
    
    if (fv.isEmpty(document.getElementById("fechaInicioZona").value)) {
            //fv.raiseError("Debe ingresar un password");
            fv.raiseError("");
            document.getElementById("RegLblErrorFechaIni").innerHTML = "Debe ingresar una fecha de inicio";
        }
        
       if (fv.isEmpty(document.getElementById("fechaFinZona").value)) {
            //fv.raiseError("Debe ingresar un password");
            fv.raiseError("");
            document.getElementById("RegLblErrorFechaFin").innerHTML = "Debe ingresar una fecha de fin";
        }
        else {
            var f1 = $("#fechaInicioZona").datepicker("getDate");
            var f2 = $("#fechaFinZona").datepicker("getDate");
            //alert(f1 + "    -     " + f2);
            if (f1 > f2) {
                fv.raiseError("");
                document.getElementById("RegLblErrorFechaNoIgual").innerHTML = "La fecha de inicio debe ser menor que la final. Intente de nuevo.";
            }
        }

if (fv.numErrors() < 1) {
    
    
    var jsonData = JSON.stringify(data);
    console.log(data);
    $.ajax({
        type: "POST",
	data: jsonData,
	dataType: "json",
	contentType: "application/json; charset=utf-8",
	url: "reporteEstadoPedidosJSON.htm",
        beforeSend: function(){
	    	$("#cargando").show("slow");
	}, 
        success: function(data){
            $("#cargando").hide("slow");
            
            if(data.me === ""){
                var costoXDia = data.costoxDia;
                var reporte = data.reporte;
                var arreglo = new Array();

                arreglo[0] = ['N','Cliente','Cantidad','Ciudad','x','y','Fecha Pedido','Hora Pedido','Tiempo de Entrega','Retraso','Costo'];

                $.each(reporte,function(i,item){
                    arreglo[i+1] = [item.idPedido, item.nombreCliente, item.cantidadProductoTotal,item.ciudad,item.x,item.y,item.fechaPedido,item.horaPedido,item.tiempoEntrega,item.retraso,item.costoRetraso];
                });
                                
                var table = new google.visualization.Table(document.getElementById('table_div'));
                
                var line = new Array();
                
                line[0] = ['Fecha','Pedidos Retardados','Costo x Retraso'];
                
                $.each(costoXDia,function(i,item){                        
                    line[i+1] = [item.fecha,item.cantidadRetraso,item.costo];
                });
                
                var linedata = google.visualization.arrayToDataTable(line);              

                var Entregado=0;
                var EnProceso=0;
                var Retrasado=0;
                
                $.each(costoXDia,function(i,item){
                   Entregado+= item.cantidadEntregado;
                   EnProceso+= item.cantidadProceso;
                   Retrasado+=item.cantidadRetraso;
                });
                
                Entregado = Entregado -Retrasado;                
                
                var piedata = google.visualization.arrayToDataTable([
                    ['Estado de Pedido','Cantidad'],
                    ['Pedidos Entregados',Entregado],
                    ['Pedidos en Proceso',EnProceso],
                    ['Pedidos Retrasados',Retrasado]
                ]);
                
                console.log(piedata);
                
                var options ={
                    title: 'Pedidos'
                };
                
                var piechart = new google.visualization.PieChart(document.getElementById('chart_div'));
                piechart.draw(piedata,options);
                
                console.log(Entregado);
                console.log(Retrasado);
                console.log(EnProceso);
                
                var areachart = new google.visualization.AreaChart(document.getElementById('visualization'));                
                
                areachart.draw(linedata, {areaOpacity:0.0,lineWidth:3,pointSize:8,charArea:{left:20,top:20,widh:640}});
                
                if (line.length>1){
                    $('#alerta').hide();
                }
                else{
                    $('#alerta').show("slow");
                    areachart.clearChart();
                }
                
                var data = google.visualization.arrayToDataTable(arreglo);
                
                table.draw(data,{showRowNumber:false,page:'enable',pageSize:6});
                 
                if (arreglo.length>1){
                    $('#alertaTabla').hide();
                }
                else{
                    $('#alertaTabla').show("slow");
                    table.clearChart();
                    piechart.clearChart();
                }                
                
            }
            else{
                    alert(data.me);
          fv.displayErrors();
                        return false;
            }
        }
    });
     return true;
} else {
    fv.displayErrors();
                        return false;
}
}
